﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using csvmb.contracts.datacontracts;
using csvmb.gui.contracts;

namespace csvmb.gui
{
    public class ViewModel_bauen : IViewModel_bauen
    {
        public event Action<ViewModel> Result;

        public void Process(Tuple<IEnumerable<string>, Tuple<IEnumerable<Datensatz>, Tuple<long, long>>> message) {
            Trace.TraceInformation("Gui.ViewModel_bauen {0} - {1} - {2} - {3}",
                message.Item1,
                message.Item2.Item1,
                message.Item2.Item2.Item1,
                message.Item2.Item2.Item2);

            var viewmodel = new ViewModel();

            viewmodel.Ausschnitt = new Ausschnitt(message.Item1, message.Item2.Item1);
            viewmodel.Ausschnittanzahl = message.Item2.Item2.Item2;
            viewmodel.Ausschnittsnummer = message.Item2.Item2.Item1;
            
            viewmodel.Blättern_an_den_Anfang_erlaubt = viewmodel.Ausschnittsnummer > 1;
            viewmodel.Blättern_zurück_erlaubt = viewmodel.Ausschnittsnummer > 1;
            viewmodel.Blättern_an_das_Ende_erlaubt = viewmodel.Ausschnittsnummer < viewmodel.Ausschnittanzahl;
            viewmodel.Blättern_weiter_erlaubt = viewmodel.Ausschnittsnummer < viewmodel.Ausschnittanzahl;
            
            Result(viewmodel);
        }
    }
}